package com.zingrow.web.configure.iformation.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.zingrow.common.exception.NumberErrorException;
import com.zingrow.common.utils.PageView;
import com.zingrow.web.configure.iformation.model.Iformation;


public interface IIformationService {
	/**
	 * 
	 * 通过方案id查询组织id
	 * */
	Integer selectGroupId (Integer ifm_id);
	
	
	/**
	 * 通过方案id查询方案名称
	 * app操作日志使用
	 * */
	String ifmNamebyifmId(String ifmId);
	/**
	 * 通过方案id类别名称
	 * app操作日志使用
	 */
  String appselectbyifmId(String ifmId);
    /**
     * 分页模糊查询
     * 
     * @param pageView
     * @param ifm_name
     * @param ifm_note
     * @param tissue_name
     * @return
     */
	List<Iformation> queryByParams(PageView pageView, String ifm_name,String ifm_note
			,Integer groupId,String ifm_isdelete,String ifm_categoryName);

    /**
     * 新增
     * 
     * @param iformation
     * @return
     */
	/*
	*通过类别名称查询类别 */
	Iformation selectNameBycategory(Iformation iformation);
    
	
	boolean addIformation(Iformation iformation);
    
    /*
     * 通过组织id查询类别名称
     */
   List<Iformation>  selectCategoryNameByGroupid(Integer groupId);
    
    /*
     * 判断同一个组织内同一个类别只允许一个类别名称
     * 
     * */
    Iformation selectIfm_categoryNameByGroupId(Integer groupId,String ifm_category);

    /**
     * 修改
     * 
     * @param iformation
     * @return
     */
    boolean modifyIformation(Iformation iformation);
    /**
     * 修改2
     * 
     * @param iformation
     * @return
     */
    boolean modifyIformation2(Iformation iformation,String oldCategory);

    /**
     * 修改3
     * 修改时没有方案类别 根据方案id与组织id修改类别与类别名称
     * @param iformation
     * @return
     */
    boolean modifyIformation3(Iformation iformation);
    /*
     * * 根据主键修改信息4—— 根据方案id组织id类别修改类别名称-->
     */
    boolean modifyIformation4(Iformation iformation,String oldCategory);
   

    /**
     * 同名判段
     * 
     * @param ifm_name
     * @param ifm_id
     * @return
     */
    boolean querySameByifmName(String ifm_name, Integer ifm_id);
    
    /*
     * 根据组织id查询
     * */

    /**
     * 单个查询
     * 
     * @param ifm_id
     * @return
     */
    Iformation queryByID(Integer ifm_id);
    
    /**
     * 单个查询2
     * 
     * @param ifm_id
     * @return
     */
    Iformation queryByID2(Integer ifm_id,Integer group_id);
    
    //删除
    boolean deleteByid(Integer ifm_id)throws NumberErrorException;
    
    /**
     * 根据用户ID获取对应的所有栏目
     */
    List<Iformation> queryIformationByUserName(String user_account);
    
    /**
     * 查询接口组织模块
     * @param pageView
     * @param ifm_name
     * @param ifm_note
     * @return
     */
    List<Iformation> queryByParamsNN(PageView pageView, String ifm_name,String ifm_note,int gid);
    
    /**
     * 查询敏感方案接口     组织模块
     * @param pageView
     * @param ifm_name
     * @param ifm_note
     * @return
     */
    List<Iformation> queryBymg(PageView pageView, String ifm_name,String ifm_note);
    
    List<Iformation> selectId(List<String> ids);
    
    List<Iformation> selectlistId(List<String> ids);
    
    
    List<Integer> getAllId();
    
    
    /**
     * 根据信息查询当前新增方案ID
     * @returns
     */
    Iformation selectbyname(String ifm_name,String ifm_note,String ifm_getKeyword);
    
    Iformation selectbyifmid(int ifm_id);
    
    List<Iformation> selectcheckalready(int gid);
    
    
    
}
